Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>Rasterzeileninterrupt</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/Rasterzeileninterrupt"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="./_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Rasterzeileninterrupt rootpage-Rasterzeileninterrupt skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Rasterzeileninterrupt</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr"><p>Der <b>Rasterzeileninterrupt</b> ist ein <a href="Hardwareinterrupt" title="Hardwareinterrupt">Hardwareinterrupt</a>, der ausgelöst wird, wenn der Videochip eines <a href="Computer" title="Computer">Computers</a> die Darstellung einer bestimmten Zeile auf dem <a href="Bildschirm" title="Bildschirm">Bildschirm</a> beginnt.
</p><p>Die Rasterzeileninterruptprogrammierung wurde intensiv auf den <a href="Heimcomputer" title="Heimcomputer">Heimcomputern</a> der 1980er Jahre angewendet. Sie wurde bald zu einem festen Bestandteil vieler für <a href="8-Bit-Architektur" title="8-Bit-Architektur">8-Bit</a>-Heimcomputer geschriebener Computerspiele.
</p><p>Der <a href="Bildaufbau" title="Bildaufbau">Bildaufbau</a> auf Bildschirmen findet zeilenweise statt. Der Videochip, der die Bilddaten ausgibt, enthält dazu unter anderem einen Zähler für die momentan auszugebende Bildzeile, die sogenannte Rasterzeile. Unterstützt der Videochip einen Rasterzeileninterrupt, kann vom Programm eine Zeile festgelegt werden, bei der dieser Interrupt ausgelöst werden soll. Erreicht der Rasterzeilenzähler diesen Wert, signalisiert der Videochip eine Interruptanforderung an den Prozessor. Dieser unterbricht das laufende Programm und führt eine Unterbrechungsroutine (Interrupt Handler) aus. Am Ende der Unterbrechungsroutine fährt der Prozessor mit dem unterbrochenen Programm fort.
</p><p>Der Rasterzeileninterrupt vereinfacht es, Programmteile beim Erreichen einer bestimmten Bildschirmzeile auszuführen, also mit dem Bildaufbau zu synchronisieren. Das Programm muss nicht aktiv auf das Erreichen dieser Position warten, sondern wird durch die vom Videochip signalisierte Unterbrechungsanforderung (Interrupt) informiert. So lassen sich beispielsweise sehr einfach während des Bildaufbaus Grafikmodi wechseln (<a href="Split_Screen" title="Split Screen">Split Screen</a>) oder normalerweise für das Gesamtbild geltende Farben umschalten.
Auch die gleichzeitige Darstellung einer größeren Anzahl hardwaregenerierter <a href="Sprite_(Computergrafik)" title="Sprite (Computergrafik)">Sprites</a> als ursprünglich vom System vorgesehen durch Änderung der Bildschirmpositionen nicht mehr benötigter Sprites aus dem bereits überstrichenen in den noch vom <a href="Elektronenstrahl" title="Elektronenstrahl">Elektronenstrahl</a> zu zeichnenden Bildschirmbereich wird durch den Rasterinterrupt vereinfacht (z.&nbsp;B. bei Spielen für den <a href="Commodore_64" title="Commodore 64">Commodore 64</a>).
</p>

<div class="mw-heading mw-heading2"><h2 id="Hardware">Hardware</h2></div>
<p>Ein bekannter klassischer Grafikchip, bei dem der Hersteller die Mechanismen für einen Rasterzeileninterrupt eingebaut hat, ist der <a href="MOS_Technology_VIC_II" title="MOS Technology VIC II">VIC-II</a> (<a href="MOS_Technology" title="MOS Technology">MOS Technology</a> 6569 und ähnliche Varianten). Dieser wurde unter anderem im Commodore 64 verbaut. Zeitgenössische 8-Bit-Hardware wie der <a href="Atari_800" title="Atari 800">Atari 800</a>,<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> Homecomputer nach dem <a href="MSX" title="MSX">MSX</a>-Standard oder der <a href="Schneider_CPC" class="mw-redirect" title="Schneider CPC">Schneider CPC</a> beherrschten ihn ebenfalls. Aber auch jüngere Hardware unterstützt Rasterzeileninterrupts, wie z.&nbsp;B. das <a href="Megadrive" class="mw-redirect" title="Megadrive">Megadrive</a>,<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> das <a href="Super_Nintendo" class="mw-redirect" title="Super Nintendo">Super Nintendo</a>, der <a href="Game_Boy_Advance" title="Game Boy Advance">Game Boy Advance</a><sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> oder der <a href="GameCube" class="mw-redirect" title="GameCube">GameCube</a>, wo die Technik oft in Spielen für diverse optische Effekte eingesetzt wurde.
</p>
<div class="mw-heading mw-heading2"><h2 id="Literatur">Literatur</h2></div>
<ul><li>Axel Plenge: <cite style="font-style:italic">Das Grafikbuch zum Commodore 64</cite>. Data Becker Verlag, 1984, ISBN 3-89011-009-6.<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rfr_id=info:sid/de.wikipedia.org:Rasterzeileninterrupt&amp;rft.au=Axel+Plenge&amp;rft.btitle=Das+Grafikbuch+zum+Commodore+64&amp;rft.date=1984&amp;rft.genre=book&amp;rft.isbn=3890110096&amp;rft.pub=Data+Becker+Verlag" style="display:none">&nbsp;</span></li>
<li><cite style="font-style:italic">Effekthascherei</cite>. In: <cite style="font-style:italic">64’er Magazin</cite>. <span style="white-space:nowrap">Nr.<span style="display:inline-block;width:.2em">&nbsp;</span>9</span>. Franzis Verlag, September 1997 (<a rel="nofollow" class="external text" href="https://web.archive.org/web/19990424085625/http://www.amiga-magazin.de/64er/akheft/a97092a.htm">Online</a> [abgerufen am 21.&nbsp;September 2021]).<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rfr_id=info:sid/de.wikipedia.org:Rasterzeileninterrupt&amp;rft.atitle=Effekthascherei&amp;rft.date=1997-09&amp;rft.genre=journal&amp;rft.issue=9&amp;rft.jtitle=64%E2%80%99er+Magazin&amp;rft.pub=Franzis+Verlag" style="display:none">&nbsp;</span></li>
<li>Steve Collins: <cite style="font-style:italic">Game graphics during the 8-bit computer era</cite>. In: <cite style="font-style:italic">ACM SIGGRAPH Computer Graphics</cite>. <span style="white-space:nowrap">Band<span style="display:inline-block;width:.2em">&nbsp;</span>32</span>, <span style="white-space:nowrap">Nr.<span style="display:inline-block;width:.2em">&nbsp;</span>2</span>. ACM, 1998, <a href="Internationale_Standardnummer_f%C3%BCr_fortlaufende_Sammelwerke" title="Internationale Standardnummer für fortlaufende Sammelwerke">ISSN</a>&nbsp;<span style="white-space:nowrap"><a rel="nofollow" class="external text" href="https://zdb-katalog.de/list.xhtml?t=iss%3D%220097-8930%22&amp;key=cql">0097-8930</a></span> (<a rel="nofollow" class="external text" href="http://www.siggraph.org/publications/newsletter/v32n2/contributions/collins.html">siggraph.org</a>).<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rfr_id=info:sid/de.wikipedia.org:Rasterzeileninterrupt&amp;rft.atitle=Game+graphics+during+the+8-bit+computer+era&amp;rft.au=Steve+Collins&amp;rft.date=1998&amp;rft.genre=journal&amp;rft.issn=0097-8930&amp;rft.issue=2&amp;rft.jtitle=ACM+SIGGRAPH+Computer+Graphics&amp;rft.place=New+York&amp;rft.pub=ACM&amp;rft.volume=32" style="display:none">&nbsp;</span></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Weblinks">Weblinks</h2></div>
<ul><li><a rel="nofollow" class="external text" href="http://www.floodgap.com/retrobits/ckb/display.cgi?149">Text zur Programmierung des Rasterzeileninterrupts am C64</a> (englisch)</li>
<li>Ivo Herzeg: <a rel="nofollow" class="external text" href="http://magicdisk.untergrund.net/md/KURS-IRQ-KURS.txt.html">Interruptkurs</a> in der Magic Disk 64, CP Verlag</li>
<li>Michael Steil: <a rel="nofollow" class="external text" href="https://www.youtube.com/watch?v=ZsRRCnque2E"><i><i>The Ultimate Commodore 64 Talk</i></i></a> auf <a href="YouTube" title="YouTube">YouTube</a> – Vortrag auf dem 25. <a href="Chaos_Communication_Congress" title="Chaos Communication Congress">Chaos Communication Congress</a> (englisch)</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Einzelnachweise">Einzelnachweise</h2></div>
<ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">Display List Interruptprogrammierung am Atari 800: <a rel="nofollow" class="external text" href="http://www.atariarchives.org/dere/chapt05.php">Artikel</a> bei Atariarchives.org (englisch)</span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a></span> <span class="reference-text">Programmierung des Sega Megadrives: <span style="display:none"><a rel="nofollow" class="external text" href="http://deadurl.invalid/http://www.gamefaqs.com/console/genesis/file/916377/9755">@1</a></span><span style="display:none"><a rel="nofollow" class="external text" href="http://www.gamefaqs.com/console/genesis/file/916377/9755">@2</a></span><span style="display:none">Vorlage:Toter Link/www.gamefaqs.com</span><a rel="nofollow" class="external text" href="http://www.gamefaqs.com/console/genesis/file/916377/9755">Dokumentation</a> <small>(Seite nicht mehr abrufbar. <a rel="nofollow" class="external text" href="http://timetravel.mementoweb.org/list/2010/http://www.gamefaqs.com/console/genesis/file/916377/9755">Suche in Webarchiven</a>)</small> bei <a href="GameFAQs" title="GameFAQs">GameFAQs</a> (englisch)</span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><a href="#cite_ref-3">↑</a></span> <span class="reference-text">Display-Interruptprogrammierung am Game Boy Advance: <a rel="nofollow" class="external text" href="http://wiki.nycresistor.com/wiki/GB101:Working_with_Palettes">Wikiseite bei NYC Resistor</a> (englisch)</span>
</li>
</ol></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2024-01-20" href="https://de.wikipedia.org/wiki/?title=Rasterzeileninterrupt&amp;oldid=241358051">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>

</body></html>